<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="aiplatform_v1beta1.html">Vertex AI API</a> . <a href="aiplatform_v1beta1.projects.html">projects</a> . <a href="aiplatform_v1beta1.projects.locations.html">locations</a> . <a href="aiplatform_v1beta1.projects.locations.extensions.html">extensions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="aiplatform_v1beta1.projects.locations.extensions.operations.html">operations()</a></code>
</p>
<p class="firstline">Returns the operations Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an Extension.</p>
<p class="toc_element">
  <code><a href="#execute">execute(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Executes the request against a given extension.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an Extension.</p>
<p class="toc_element">
  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Imports an Extension.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists Extensions in a location.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an Extension.</p>
<p class="toc_element">
  <code><a href="#query">query(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Queries an extension with a default controller.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes an Extension.

Args:
  name: string, Required. The name of the Extension resource to be deleted. Format: `projects/{project}/locations/{location}/extensions/{extension}` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="execute">execute(name, body=None, x__xgafv=None)</code>
  <pre>Executes the request against a given extension.

Args:
  name: string, Required. Name (identifier) of the extension; Format: `projects/{project}/locations/{location}/extensions/{extension}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for ExtensionExecutionService.ExecuteExtension.
  &quot;operationId&quot;: &quot;A String&quot;, # Required. The desired ID of the operation to be executed in this extension as defined in ExtensionOperation.operation_id.
  &quot;operationParams&quot;: { # Optional. Request parameters that will be used for executing this operation. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
  },
  &quot;runtimeAuthConfig&quot;: { # Auth configuration to run the extension. # Optional. Auth config provided at runtime to override the default value in Extension.manifest.auth_config. The AuthConfig.auth_type should match the value in Extension.manifest.auth_config.
    &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
      &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
      &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
      &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
      &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
    },
    &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
    &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
      &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
    },
    &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
      &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
    },
    &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
      &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
      &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
    },
    &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
      &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
      &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ExtensionExecutionService.ExecuteExtension.
  &quot;content&quot;: &quot;A String&quot;, # Response content from the extension. The content should be conformant to the response.content schema in the extension&#x27;s manifest/OpenAPI spec.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets an Extension.

Args:
  name: string, Required. The name of the Extension resource. Format: `projects/{project}/locations/{location}/extensions/{extension}` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Extensions are tools for large language models to access external data, run computations, etc.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the Extension.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Extension. The name can be up to 128 characters long and can consist of any UTF-8 characters.
  &quot;etag&quot;: &quot;A String&quot;, # Optional. Used to perform consistent read-modify-write updates. If not set, a blind &quot;overwrite&quot; update happens.
  &quot;extensionOperations&quot;: [ # Output only. Supported operations.
    { # Operation of an extension.
      &quot;functionDeclaration&quot;: { # Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. # Output only. Structured representation of a function declaration as defined by the OpenAPI Spec.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.
        &quot;parameters&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;parametersJsonSchema&quot;: &quot;&quot;, # Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;name&quot;: { &quot;type&quot;: &quot;string&quot; }, &quot;age&quot;: { &quot;type&quot;: &quot;integer&quot; } }, &quot;additionalProperties&quot;: false, &quot;required&quot;: [&quot;name&quot;, &quot;age&quot;], &quot;propertyOrdering&quot;: [&quot;name&quot;, &quot;age&quot;] } ``` This field is mutually exclusive with `parameters`.
        &quot;response&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;responseJsonSchema&quot;: &quot;&quot;, # Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`.
      },
      &quot;operationId&quot;: &quot;A String&quot;, # Operation ID that uniquely identifies the operations among the extension. See: &quot;Operation Object&quot; in https://swagger.io/specification/. This field is parsed from the OpenAPI spec. For HTTP extensions, if it does not exist in the spec, we will generate one from the HTTP method and path.
    },
  ],
  &quot;manifest&quot;: { # Manifest spec of an Extension needed for runtime execution. # Required. Manifest of the Extension.
    &quot;apiSpec&quot;: { # The API specification shown to the LLM. # Required. Immutable. The API specification shown to the LLM.
      &quot;openApiGcsUri&quot;: &quot;A String&quot;, # Cloud Storage URI pointing to the OpenAPI spec.
      &quot;openApiYaml&quot;: &quot;A String&quot;, # The API spec in Open API standard and YAML format.
    },
    &quot;authConfig&quot;: { # Auth configuration to run the extension. # Required. Immutable. Type of auth supported by this extension.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
        &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
        &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
      },
      &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
      &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
      },
      &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
        &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
      },
      &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
        &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
      },
      &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
        &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
      },
    },
    &quot;description&quot;: &quot;A String&quot;, # Required. The natural language description shown to the LLM. It should describe the usage of the extension, and is essential for the LLM to perform reasoning. e.g., if the extension is a data store, you can let the LLM know what data it contains.
    &quot;name&quot;: &quot;A String&quot;, # Required. Extension name shown to the LLM. The name can be up to 128 characters long.
  },
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The resource name of the Extension.
  &quot;privateServiceConnectConfig&quot;: { # PrivateExtensionConfig configuration for the extension. # Optional. The PrivateServiceConnect config for the extension. If specified, the service endpoints associated with the Extension should be [registered with private network access in the provided Service Directory](https://cloud.google.com/service-directory/docs/configuring-private-network-access). If the service contains more than one endpoint with a network, the service will arbitrarilty choose one of the endpoints to use for extension execution.
    &quot;serviceDirectory&quot;: &quot;A String&quot;, # Required. The Service Directory resource name in which the service endpoints associated to the extension are registered. Format: `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` - The Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) should be granted `servicedirectory.viewer` and `servicedirectory.pscAuthorizedService` roles on the resource.
  },
  &quot;runtimeConfig&quot;: { # Runtime configuration to run the extension. # Optional. Runtime config controlling the runtime behavior of this Extension.
    &quot;codeInterpreterRuntimeConfig&quot;: { # Code execution runtime configurations for code interpreter extension.
      &quot;fileInputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file input of this Extension. If specified, support input from the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file reader to this bucket. If not specified, the extension will only accept file contents from request body and reject Cloud Storage file inputs.
      &quot;fileOutputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file output of this Extension. If specified, write all output files to the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file writer to this bucket. If not specified, the file content will be output in response body.
    },
    &quot;defaultParams&quot;: { # Optional. Default parameters that will be set for all the execution of this extension. If specified, the parameter values can be overridden by values in [[ExecuteExtensionRequest.operation_params]] at request time. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;vertexAiSearchRuntimeConfig&quot;: { # Runtime configuration for Vertex AI Search extension.
      &quot;engineId&quot;: &quot;A String&quot;, # Optional. Vertex AI Search engine ID. This is used to construct the search request. By setting this engine_id, API will construct the serving config using the default value to call search API for the user. The engine_id and serving_config_name cannot both be empty at the same time.
      &quot;servingConfigName&quot;: &quot;A String&quot;, # Optional. Vertex AI Search serving config name. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
  &quot;toolUseExamples&quot;: [ # Optional. Examples to illustrate the usage of the extension as a tool.
    { # A single example of the tool usage.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name for example.
      &quot;extensionOperation&quot;: { # Identifies one operation of the extension. # Extension operation to call.
        &quot;extension&quot;: &quot;A String&quot;, # Resource name of the extension.
        &quot;operationId&quot;: &quot;A String&quot;, # Required. Operation ID of the extension.
      },
      &quot;functionName&quot;: &quot;A String&quot;, # Function name to call.
      &quot;query&quot;: &quot;A String&quot;, # Required. Query that should be routed to this tool.
      &quot;requestParams&quot;: { # Request parameters used for executing this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseParams&quot;: { # Response parameters generated by this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseSummary&quot;: &quot;A String&quot;, # Summary of the tool response to the user query.
    },
  ],
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was most recently updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
  <pre>Imports an Extension.

Args:
  parent: string, Required. The resource name of the Location to import the Extension in. Format: `projects/{project}/locations/{location}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Extensions are tools for large language models to access external data, run computations, etc.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the Extension.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Extension. The name can be up to 128 characters long and can consist of any UTF-8 characters.
  &quot;etag&quot;: &quot;A String&quot;, # Optional. Used to perform consistent read-modify-write updates. If not set, a blind &quot;overwrite&quot; update happens.
  &quot;extensionOperations&quot;: [ # Output only. Supported operations.
    { # Operation of an extension.
      &quot;functionDeclaration&quot;: { # Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. # Output only. Structured representation of a function declaration as defined by the OpenAPI Spec.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.
        &quot;parameters&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;parametersJsonSchema&quot;: &quot;&quot;, # Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;name&quot;: { &quot;type&quot;: &quot;string&quot; }, &quot;age&quot;: { &quot;type&quot;: &quot;integer&quot; } }, &quot;additionalProperties&quot;: false, &quot;required&quot;: [&quot;name&quot;, &quot;age&quot;], &quot;propertyOrdering&quot;: [&quot;name&quot;, &quot;age&quot;] } ``` This field is mutually exclusive with `parameters`.
        &quot;response&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;responseJsonSchema&quot;: &quot;&quot;, # Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`.
      },
      &quot;operationId&quot;: &quot;A String&quot;, # Operation ID that uniquely identifies the operations among the extension. See: &quot;Operation Object&quot; in https://swagger.io/specification/. This field is parsed from the OpenAPI spec. For HTTP extensions, if it does not exist in the spec, we will generate one from the HTTP method and path.
    },
  ],
  &quot;manifest&quot;: { # Manifest spec of an Extension needed for runtime execution. # Required. Manifest of the Extension.
    &quot;apiSpec&quot;: { # The API specification shown to the LLM. # Required. Immutable. The API specification shown to the LLM.
      &quot;openApiGcsUri&quot;: &quot;A String&quot;, # Cloud Storage URI pointing to the OpenAPI spec.
      &quot;openApiYaml&quot;: &quot;A String&quot;, # The API spec in Open API standard and YAML format.
    },
    &quot;authConfig&quot;: { # Auth configuration to run the extension. # Required. Immutable. Type of auth supported by this extension.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
        &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
        &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
      },
      &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
      &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
      },
      &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
        &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
      },
      &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
        &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
      },
      &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
        &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
      },
    },
    &quot;description&quot;: &quot;A String&quot;, # Required. The natural language description shown to the LLM. It should describe the usage of the extension, and is essential for the LLM to perform reasoning. e.g., if the extension is a data store, you can let the LLM know what data it contains.
    &quot;name&quot;: &quot;A String&quot;, # Required. Extension name shown to the LLM. The name can be up to 128 characters long.
  },
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The resource name of the Extension.
  &quot;privateServiceConnectConfig&quot;: { # PrivateExtensionConfig configuration for the extension. # Optional. The PrivateServiceConnect config for the extension. If specified, the service endpoints associated with the Extension should be [registered with private network access in the provided Service Directory](https://cloud.google.com/service-directory/docs/configuring-private-network-access). If the service contains more than one endpoint with a network, the service will arbitrarilty choose one of the endpoints to use for extension execution.
    &quot;serviceDirectory&quot;: &quot;A String&quot;, # Required. The Service Directory resource name in which the service endpoints associated to the extension are registered. Format: `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` - The Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) should be granted `servicedirectory.viewer` and `servicedirectory.pscAuthorizedService` roles on the resource.
  },
  &quot;runtimeConfig&quot;: { # Runtime configuration to run the extension. # Optional. Runtime config controlling the runtime behavior of this Extension.
    &quot;codeInterpreterRuntimeConfig&quot;: { # Code execution runtime configurations for code interpreter extension.
      &quot;fileInputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file input of this Extension. If specified, support input from the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file reader to this bucket. If not specified, the extension will only accept file contents from request body and reject Cloud Storage file inputs.
      &quot;fileOutputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file output of this Extension. If specified, write all output files to the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file writer to this bucket. If not specified, the file content will be output in response body.
    },
    &quot;defaultParams&quot;: { # Optional. Default parameters that will be set for all the execution of this extension. If specified, the parameter values can be overridden by values in [[ExecuteExtensionRequest.operation_params]] at request time. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;vertexAiSearchRuntimeConfig&quot;: { # Runtime configuration for Vertex AI Search extension.
      &quot;engineId&quot;: &quot;A String&quot;, # Optional. Vertex AI Search engine ID. This is used to construct the search request. By setting this engine_id, API will construct the serving config using the default value to call search API for the user. The engine_id and serving_config_name cannot both be empty at the same time.
      &quot;servingConfigName&quot;: &quot;A String&quot;, # Optional. Vertex AI Search serving config name. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
  &quot;toolUseExamples&quot;: [ # Optional. Examples to illustrate the usage of the extension as a tool.
    { # A single example of the tool usage.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name for example.
      &quot;extensionOperation&quot;: { # Identifies one operation of the extension. # Extension operation to call.
        &quot;extension&quot;: &quot;A String&quot;, # Resource name of the extension.
        &quot;operationId&quot;: &quot;A String&quot;, # Required. Operation ID of the extension.
      },
      &quot;functionName&quot;: &quot;A String&quot;, # Function name to call.
      &quot;query&quot;: &quot;A String&quot;, # Required. Query that should be routed to this tool.
      &quot;requestParams&quot;: { # Request parameters used for executing this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseParams&quot;: { # Response parameters generated by this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseSummary&quot;: &quot;A String&quot;, # Summary of the tool response to the user query.
    },
  ],
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was most recently updated.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists Extensions in a location.

Args:
  parent: string, Required. The resource name of the Location to list the Extensions from. Format: `projects/{project}/locations/{location}` (required)
  filter: string, Optional. The standard list filter. Supported fields: * `display_name` * `create_time` * `update_time` More detail in [AIP-160](https://google.aip.dev/160).
  orderBy: string, Optional. A comma-separated list of fields to order by, sorted in ascending order. Use &quot;desc&quot; after a field name for descending. Supported fields: * `display_name` * `create_time` * `update_time` Example: `display_name, create_time desc`.
  pageSize: integer, Optional. The standard list page size.
  pageToken: string, Optional. The standard list page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ExtensionRegistryService.ListExtensions
  &quot;extensions&quot;: [ # List of Extension in the requested page.
    { # Extensions are tools for large language models to access external data, run computations, etc.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was created.
      &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the Extension.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Extension. The name can be up to 128 characters long and can consist of any UTF-8 characters.
      &quot;etag&quot;: &quot;A String&quot;, # Optional. Used to perform consistent read-modify-write updates. If not set, a blind &quot;overwrite&quot; update happens.
      &quot;extensionOperations&quot;: [ # Output only. Supported operations.
        { # Operation of an extension.
          &quot;functionDeclaration&quot;: { # Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. # Output only. Structured representation of a function declaration as defined by the OpenAPI Spec.
            &quot;description&quot;: &quot;A String&quot;, # Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.
            &quot;parameters&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
              &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
              &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
                # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              ],
              &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
              &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
                &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              },
              &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
              &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
                &quot;A String&quot;,
              ],
              &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
              &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
              &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
              &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
              &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
              &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
              &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
              &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
              &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
              &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
              &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
              &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
              &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
              &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
                &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              },
              &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
                &quot;A String&quot;,
              ],
              &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
              &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
                &quot;A String&quot;,
              ],
              &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
              &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
            },
            &quot;parametersJsonSchema&quot;: &quot;&quot;, # Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;name&quot;: { &quot;type&quot;: &quot;string&quot; }, &quot;age&quot;: { &quot;type&quot;: &quot;integer&quot; } }, &quot;additionalProperties&quot;: false, &quot;required&quot;: [&quot;name&quot;, &quot;age&quot;], &quot;propertyOrdering&quot;: [&quot;name&quot;, &quot;age&quot;] } ``` This field is mutually exclusive with `parameters`.
            &quot;response&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
              &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
              &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
                # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              ],
              &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
              &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
                &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              },
              &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
              &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
                &quot;A String&quot;,
              ],
              &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
              &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
              &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
              &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
              &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
              &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
              &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
              &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
              &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
              &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
              &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
              &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
              &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
              &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
                &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
              },
              &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
                &quot;A String&quot;,
              ],
              &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
              &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
                &quot;A String&quot;,
              ],
              &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
              &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
            },
            &quot;responseJsonSchema&quot;: &quot;&quot;, # Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`.
          },
          &quot;operationId&quot;: &quot;A String&quot;, # Operation ID that uniquely identifies the operations among the extension. See: &quot;Operation Object&quot; in https://swagger.io/specification/. This field is parsed from the OpenAPI spec. For HTTP extensions, if it does not exist in the spec, we will generate one from the HTTP method and path.
        },
      ],
      &quot;manifest&quot;: { # Manifest spec of an Extension needed for runtime execution. # Required. Manifest of the Extension.
        &quot;apiSpec&quot;: { # The API specification shown to the LLM. # Required. Immutable. The API specification shown to the LLM.
          &quot;openApiGcsUri&quot;: &quot;A String&quot;, # Cloud Storage URI pointing to the OpenAPI spec.
          &quot;openApiYaml&quot;: &quot;A String&quot;, # The API spec in Open API standard and YAML format.
        },
        &quot;authConfig&quot;: { # Auth configuration to run the extension. # Required. Immutable. Type of auth supported by this extension.
          &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
            &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
            &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
            &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
            &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
          },
          &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
          &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
            &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
          },
          &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
            &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
          },
          &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
            &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
            &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
          },
          &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
            &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
            &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
          },
        },
        &quot;description&quot;: &quot;A String&quot;, # Required. The natural language description shown to the LLM. It should describe the usage of the extension, and is essential for the LLM to perform reasoning. e.g., if the extension is a data store, you can let the LLM know what data it contains.
        &quot;name&quot;: &quot;A String&quot;, # Required. Extension name shown to the LLM. The name can be up to 128 characters long.
      },
      &quot;name&quot;: &quot;A String&quot;, # Identifier. The resource name of the Extension.
      &quot;privateServiceConnectConfig&quot;: { # PrivateExtensionConfig configuration for the extension. # Optional. The PrivateServiceConnect config for the extension. If specified, the service endpoints associated with the Extension should be [registered with private network access in the provided Service Directory](https://cloud.google.com/service-directory/docs/configuring-private-network-access). If the service contains more than one endpoint with a network, the service will arbitrarilty choose one of the endpoints to use for extension execution.
        &quot;serviceDirectory&quot;: &quot;A String&quot;, # Required. The Service Directory resource name in which the service endpoints associated to the extension are registered. Format: `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` - The Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) should be granted `servicedirectory.viewer` and `servicedirectory.pscAuthorizedService` roles on the resource.
      },
      &quot;runtimeConfig&quot;: { # Runtime configuration to run the extension. # Optional. Runtime config controlling the runtime behavior of this Extension.
        &quot;codeInterpreterRuntimeConfig&quot;: { # Code execution runtime configurations for code interpreter extension.
          &quot;fileInputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file input of this Extension. If specified, support input from the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file reader to this bucket. If not specified, the extension will only accept file contents from request body and reject Cloud Storage file inputs.
          &quot;fileOutputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file output of this Extension. If specified, write all output files to the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file writer to this bucket. If not specified, the file content will be output in response body.
        },
        &quot;defaultParams&quot;: { # Optional. Default parameters that will be set for all the execution of this extension. If specified, the parameter values can be overridden by values in [[ExecuteExtensionRequest.operation_params]] at request time. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;vertexAiSearchRuntimeConfig&quot;: { # Runtime configuration for Vertex AI Search extension.
          &quot;engineId&quot;: &quot;A String&quot;, # Optional. Vertex AI Search engine ID. This is used to construct the search request. By setting this engine_id, API will construct the serving config using the default value to call search API for the user. The engine_id and serving_config_name cannot both be empty at the same time.
          &quot;servingConfigName&quot;: &quot;A String&quot;, # Optional. Vertex AI Search serving config name. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
        },
      },
      &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
      &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
      &quot;toolUseExamples&quot;: [ # Optional. Examples to illustrate the usage of the extension as a tool.
        { # A single example of the tool usage.
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name for example.
          &quot;extensionOperation&quot;: { # Identifies one operation of the extension. # Extension operation to call.
            &quot;extension&quot;: &quot;A String&quot;, # Resource name of the extension.
            &quot;operationId&quot;: &quot;A String&quot;, # Required. Operation ID of the extension.
          },
          &quot;functionName&quot;: &quot;A String&quot;, # Function name to call.
          &quot;query&quot;: &quot;A String&quot;, # Required. Query that should be routed to this tool.
          &quot;requestParams&quot;: { # Request parameters used for executing this tool.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;responseParams&quot;: { # Response parameters generated by this tool.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;responseSummary&quot;: &quot;A String&quot;, # Summary of the tool response to the user query.
        },
      ],
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was most recently updated.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListExtensionsRequest.page_token to obtain that page.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an Extension.

Args:
  name: string, Identifier. The resource name of the Extension. (required)
  body: object, The request body.
    The object takes the form of:

{ # Extensions are tools for large language models to access external data, run computations, etc.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the Extension.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Extension. The name can be up to 128 characters long and can consist of any UTF-8 characters.
  &quot;etag&quot;: &quot;A String&quot;, # Optional. Used to perform consistent read-modify-write updates. If not set, a blind &quot;overwrite&quot; update happens.
  &quot;extensionOperations&quot;: [ # Output only. Supported operations.
    { # Operation of an extension.
      &quot;functionDeclaration&quot;: { # Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. # Output only. Structured representation of a function declaration as defined by the OpenAPI Spec.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.
        &quot;parameters&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;parametersJsonSchema&quot;: &quot;&quot;, # Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;name&quot;: { &quot;type&quot;: &quot;string&quot; }, &quot;age&quot;: { &quot;type&quot;: &quot;integer&quot; } }, &quot;additionalProperties&quot;: false, &quot;required&quot;: [&quot;name&quot;, &quot;age&quot;], &quot;propertyOrdering&quot;: [&quot;name&quot;, &quot;age&quot;] } ``` This field is mutually exclusive with `parameters`.
        &quot;response&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;responseJsonSchema&quot;: &quot;&quot;, # Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`.
      },
      &quot;operationId&quot;: &quot;A String&quot;, # Operation ID that uniquely identifies the operations among the extension. See: &quot;Operation Object&quot; in https://swagger.io/specification/. This field is parsed from the OpenAPI spec. For HTTP extensions, if it does not exist in the spec, we will generate one from the HTTP method and path.
    },
  ],
  &quot;manifest&quot;: { # Manifest spec of an Extension needed for runtime execution. # Required. Manifest of the Extension.
    &quot;apiSpec&quot;: { # The API specification shown to the LLM. # Required. Immutable. The API specification shown to the LLM.
      &quot;openApiGcsUri&quot;: &quot;A String&quot;, # Cloud Storage URI pointing to the OpenAPI spec.
      &quot;openApiYaml&quot;: &quot;A String&quot;, # The API spec in Open API standard and YAML format.
    },
    &quot;authConfig&quot;: { # Auth configuration to run the extension. # Required. Immutable. Type of auth supported by this extension.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
        &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
        &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
      },
      &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
      &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
      },
      &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
        &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
      },
      &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
        &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
      },
      &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
        &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
      },
    },
    &quot;description&quot;: &quot;A String&quot;, # Required. The natural language description shown to the LLM. It should describe the usage of the extension, and is essential for the LLM to perform reasoning. e.g., if the extension is a data store, you can let the LLM know what data it contains.
    &quot;name&quot;: &quot;A String&quot;, # Required. Extension name shown to the LLM. The name can be up to 128 characters long.
  },
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The resource name of the Extension.
  &quot;privateServiceConnectConfig&quot;: { # PrivateExtensionConfig configuration for the extension. # Optional. The PrivateServiceConnect config for the extension. If specified, the service endpoints associated with the Extension should be [registered with private network access in the provided Service Directory](https://cloud.google.com/service-directory/docs/configuring-private-network-access). If the service contains more than one endpoint with a network, the service will arbitrarilty choose one of the endpoints to use for extension execution.
    &quot;serviceDirectory&quot;: &quot;A String&quot;, # Required. The Service Directory resource name in which the service endpoints associated to the extension are registered. Format: `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` - The Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) should be granted `servicedirectory.viewer` and `servicedirectory.pscAuthorizedService` roles on the resource.
  },
  &quot;runtimeConfig&quot;: { # Runtime configuration to run the extension. # Optional. Runtime config controlling the runtime behavior of this Extension.
    &quot;codeInterpreterRuntimeConfig&quot;: { # Code execution runtime configurations for code interpreter extension.
      &quot;fileInputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file input of this Extension. If specified, support input from the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file reader to this bucket. If not specified, the extension will only accept file contents from request body and reject Cloud Storage file inputs.
      &quot;fileOutputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file output of this Extension. If specified, write all output files to the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file writer to this bucket. If not specified, the file content will be output in response body.
    },
    &quot;defaultParams&quot;: { # Optional. Default parameters that will be set for all the execution of this extension. If specified, the parameter values can be overridden by values in [[ExecuteExtensionRequest.operation_params]] at request time. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;vertexAiSearchRuntimeConfig&quot;: { # Runtime configuration for Vertex AI Search extension.
      &quot;engineId&quot;: &quot;A String&quot;, # Optional. Vertex AI Search engine ID. This is used to construct the search request. By setting this engine_id, API will construct the serving config using the default value to call search API for the user. The engine_id and serving_config_name cannot both be empty at the same time.
      &quot;servingConfigName&quot;: &quot;A String&quot;, # Optional. Vertex AI Search serving config name. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
  &quot;toolUseExamples&quot;: [ # Optional. Examples to illustrate the usage of the extension as a tool.
    { # A single example of the tool usage.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name for example.
      &quot;extensionOperation&quot;: { # Identifies one operation of the extension. # Extension operation to call.
        &quot;extension&quot;: &quot;A String&quot;, # Resource name of the extension.
        &quot;operationId&quot;: &quot;A String&quot;, # Required. Operation ID of the extension.
      },
      &quot;functionName&quot;: &quot;A String&quot;, # Function name to call.
      &quot;query&quot;: &quot;A String&quot;, # Required. Query that should be routed to this tool.
      &quot;requestParams&quot;: { # Request parameters used for executing this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseParams&quot;: { # Response parameters generated by this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseSummary&quot;: &quot;A String&quot;, # Summary of the tool response to the user query.
    },
  ],
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was most recently updated.
}

  updateMask: string, Required. Mask specifying which fields to update. Supported fields: * `display_name` * `description` * `runtime_config` * `tool_use_examples` * `manifest.description`
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Extensions are tools for large language models to access external data, run computations, etc.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the Extension.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Extension. The name can be up to 128 characters long and can consist of any UTF-8 characters.
  &quot;etag&quot;: &quot;A String&quot;, # Optional. Used to perform consistent read-modify-write updates. If not set, a blind &quot;overwrite&quot; update happens.
  &quot;extensionOperations&quot;: [ # Output only. Supported operations.
    { # Operation of an extension.
      &quot;functionDeclaration&quot;: { # Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. # Output only. Structured representation of a function declaration as defined by the OpenAPI Spec.
        &quot;description&quot;: &quot;A String&quot;, # Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.
        &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.
        &quot;parameters&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;parametersJsonSchema&quot;: &quot;&quot;, # Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { &quot;type&quot;: &quot;object&quot;, &quot;properties&quot;: { &quot;name&quot;: { &quot;type&quot;: &quot;string&quot; }, &quot;age&quot;: { &quot;type&quot;: &quot;integer&quot; } }, &quot;additionalProperties&quot;: false, &quot;required&quot;: [&quot;name&quot;, &quot;age&quot;], &quot;propertyOrdering&quot;: [&quot;name&quot;, &quot;age&quot;] } ``` This field is mutually exclusive with `parameters`.
        &quot;response&quot;: { # Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. # Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
          &quot;additionalProperties&quot;: &quot;&quot;, # Optional. Can either be a boolean or an object; controls the presence of additional properties.
          &quot;anyOf&quot;: [ # Optional. The value should be validated against any (one or more) of the subschemas in the list.
            # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          ],
          &quot;default&quot;: &quot;&quot;, # Optional. Default value of the data.
          &quot;defs&quot;: { # Optional. A map of definitions for use by `ref` Only allowed at the root of the schema.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the data.
          &quot;enum&quot;: [ # Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[&quot;EAST&quot;, NORTH&quot;, &quot;SOUTH&quot;, &quot;WEST&quot;]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[&quot;101&quot;, &quot;201&quot;, &quot;301&quot;]}
            &quot;A String&quot;,
          ],
          &quot;example&quot;: &quot;&quot;, # Optional. Example of the object. Will only populated when the object is the root.
          &quot;format&quot;: &quot;A String&quot;, # Optional. The format of the data. Supported formats: for NUMBER type: &quot;float&quot;, &quot;double&quot; for INTEGER type: &quot;int32&quot;, &quot;int64&quot; for STRING type: &quot;email&quot;, &quot;byte&quot;, etc
          &quot;items&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema # Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY.
          &quot;maxItems&quot;: &quot;A String&quot;, # Optional. Maximum number of the elements for Type.ARRAY.
          &quot;maxLength&quot;: &quot;A String&quot;, # Optional. Maximum length of the Type.STRING
          &quot;maxProperties&quot;: &quot;A String&quot;, # Optional. Maximum number of the properties for Type.OBJECT.
          &quot;maximum&quot;: 3.14, # Optional. Maximum value of the Type.INTEGER and Type.NUMBER
          &quot;minItems&quot;: &quot;A String&quot;, # Optional. Minimum number of the elements for Type.ARRAY.
          &quot;minLength&quot;: &quot;A String&quot;, # Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING
          &quot;minProperties&quot;: &quot;A String&quot;, # Optional. Minimum number of the properties for Type.OBJECT.
          &quot;minimum&quot;: 3.14, # Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER
          &quot;nullable&quot;: True or False, # Optional. Indicates if the value may be null.
          &quot;pattern&quot;: &quot;A String&quot;, # Optional. Pattern of the Type.STRING to restrict a string to a regular expression.
          &quot;properties&quot;: { # Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.
            &quot;a_key&quot;: # Object with schema name: GoogleCloudAiplatformV1beta1Schema
          },
          &quot;propertyOrdering&quot;: [ # Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.
            &quot;A String&quot;,
          ],
          &quot;ref&quot;: &quot;A String&quot;, # Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named &quot;Pet&quot;: type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the &quot;pet&quot; property is a reference to the schema node named &quot;Pet&quot;. See details in https://json-schema.org/understanding-json-schema/structuring
          &quot;required&quot;: [ # Optional. Required properties of Type.OBJECT.
            &quot;A String&quot;,
          ],
          &quot;title&quot;: &quot;A String&quot;, # Optional. The title of the Schema.
          &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the data.
        },
        &quot;responseJsonSchema&quot;: &quot;&quot;, # Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`.
      },
      &quot;operationId&quot;: &quot;A String&quot;, # Operation ID that uniquely identifies the operations among the extension. See: &quot;Operation Object&quot; in https://swagger.io/specification/. This field is parsed from the OpenAPI spec. For HTTP extensions, if it does not exist in the spec, we will generate one from the HTTP method and path.
    },
  ],
  &quot;manifest&quot;: { # Manifest spec of an Extension needed for runtime execution. # Required. Manifest of the Extension.
    &quot;apiSpec&quot;: { # The API specification shown to the LLM. # Required. Immutable. The API specification shown to the LLM.
      &quot;openApiGcsUri&quot;: &quot;A String&quot;, # Cloud Storage URI pointing to the OpenAPI spec.
      &quot;openApiYaml&quot;: &quot;A String&quot;, # The API spec in Open API standard and YAML format.
    },
    &quot;authConfig&quot;: { # Auth configuration to run the extension. # Required. Immutable. Type of auth supported by this extension.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKeySecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
        &quot;apiKeyString&quot;: &quot;A String&quot;, # Optional. The API key to be used in the request directly.
        &quot;httpElementLocation&quot;: &quot;A String&quot;, # Optional. The location of the API key.
        &quot;name&quot;: &quot;A String&quot;, # Optional. The parameter name of the API key. E.g. If the API request is &quot;https://example.com/act?api_key=&quot;, &quot;api_key&quot; would be the parameter name.
      },
      &quot;authType&quot;: &quot;A String&quot;, # Type of auth scheme.
      &quot;googleServiceAccountConfig&quot;: { # Config for Google Service Account Authentication. # Config for Google Service Account auth.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension.
      },
      &quot;httpBasicAuthConfig&quot;: { # Config for HTTP Basic Authentication. # Config for HTTP Basic auth.
        &quot;credentialSecret&quot;: &quot;A String&quot;, # Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource.
      },
      &quot;oauthConfig&quot;: { # Config for user oauth. # Config for user oauth.
        &quot;accessToken&quot;: &quot;A String&quot;, # Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account.
      },
      &quot;oidcConfig&quot;: { # Config for user OIDC auth. # Config for user OIDC auth.
        &quot;idToken&quot;: &quot;A String&quot;, # OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time.
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents).
      },
    },
    &quot;description&quot;: &quot;A String&quot;, # Required. The natural language description shown to the LLM. It should describe the usage of the extension, and is essential for the LLM to perform reasoning. e.g., if the extension is a data store, you can let the LLM know what data it contains.
    &quot;name&quot;: &quot;A String&quot;, # Required. Extension name shown to the LLM. The name can be up to 128 characters long.
  },
  &quot;name&quot;: &quot;A String&quot;, # Identifier. The resource name of the Extension.
  &quot;privateServiceConnectConfig&quot;: { # PrivateExtensionConfig configuration for the extension. # Optional. The PrivateServiceConnect config for the extension. If specified, the service endpoints associated with the Extension should be [registered with private network access in the provided Service Directory](https://cloud.google.com/service-directory/docs/configuring-private-network-access). If the service contains more than one endpoint with a network, the service will arbitrarilty choose one of the endpoints to use for extension execution.
    &quot;serviceDirectory&quot;: &quot;A String&quot;, # Required. The Service Directory resource name in which the service endpoints associated to the extension are registered. Format: `projects/{project_id}/locations/{location_id}/namespaces/{namespace_id}/services/{service_id}` - The Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) should be granted `servicedirectory.viewer` and `servicedirectory.pscAuthorizedService` roles on the resource.
  },
  &quot;runtimeConfig&quot;: { # Runtime configuration to run the extension. # Optional. Runtime config controlling the runtime behavior of this Extension.
    &quot;codeInterpreterRuntimeConfig&quot;: { # Code execution runtime configurations for code interpreter extension.
      &quot;fileInputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file input of this Extension. If specified, support input from the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file reader to this bucket. If not specified, the extension will only accept file contents from request body and reject Cloud Storage file inputs.
      &quot;fileOutputGcsBucket&quot;: &quot;A String&quot;, # Optional. The Cloud Storage bucket for file output of this Extension. If specified, write all output files to the Cloud Storage bucket. Vertex Extension Custom Code Service Agent should be granted file writer to this bucket. If not specified, the file content will be output in response body.
    },
    &quot;defaultParams&quot;: { # Optional. Default parameters that will be set for all the execution of this extension. If specified, the parameter values can be overridden by values in [[ExecuteExtensionRequest.operation_params]] at request time. The struct should be in a form of map with param name as the key and actual param value as the value. E.g. If this operation requires a param &quot;name&quot; to be set to &quot;abc&quot;. you can set this to something like {&quot;name&quot;: &quot;abc&quot;}.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;vertexAiSearchRuntimeConfig&quot;: { # Runtime configuration for Vertex AI Search extension.
      &quot;engineId&quot;: &quot;A String&quot;, # Optional. Vertex AI Search engine ID. This is used to construct the search request. By setting this engine_id, API will construct the serving config using the default value to call search API for the user. The engine_id and serving_config_name cannot both be empty at the same time.
      &quot;servingConfigName&quot;: &quot;A String&quot;, # Optional. Vertex AI Search serving config name. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}`
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
  &quot;toolUseExamples&quot;: [ # Optional. Examples to illustrate the usage of the extension as a tool.
    { # A single example of the tool usage.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name for example.
      &quot;extensionOperation&quot;: { # Identifies one operation of the extension. # Extension operation to call.
        &quot;extension&quot;: &quot;A String&quot;, # Resource name of the extension.
        &quot;operationId&quot;: &quot;A String&quot;, # Required. Operation ID of the extension.
      },
      &quot;functionName&quot;: &quot;A String&quot;, # Function name to call.
      &quot;query&quot;: &quot;A String&quot;, # Required. Query that should be routed to this tool.
      &quot;requestParams&quot;: { # Request parameters used for executing this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseParams&quot;: { # Response parameters generated by this tool.
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
      },
      &quot;responseSummary&quot;: &quot;A String&quot;, # Summary of the tool response to the user query.
    },
  ],
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when this Extension was most recently updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="query">query(name, body=None, x__xgafv=None)</code>
  <pre>Queries an extension with a default controller.

Args:
  name: string, Required. Name (identifier) of the extension; Format: `projects/{project}/locations/{location}/extensions/{extension}` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for ExtensionExecutionService.QueryExtension.
  &quot;contents&quot;: [ # Required. The content of the current conversation with the model. For single-turn queries, this is a single instance. For multi-turn queries, this is a repeated field that contains conversation history + latest request.
    { # The structured data content of a message. A Content message contains a `role` field, which indicates the producer of the content, and a `parts` field, which contains the multi-part data of the message.
      &quot;parts&quot;: [ # Required. A list of Part objects that make up a single message. Parts of a message can have different MIME types. A Content message must have at least one Part.
        { # A datatype containing media that is part of a multi-part Content message. A `Part` consists of data which has an associated datatype. A `Part` can only contain one of the accepted types in `Part.data`. For media types that are not text, `Part` must have a fixed IANA MIME type identifying the type and subtype of the media if `inline_data` or `file_data` field is filled with raw bytes.
          &quot;codeExecutionResult&quot;: { # Result of executing the [ExecutableCode]. Only generated when using the [CodeExecution] tool, and always follows a `part` containing the [ExecutableCode]. # Optional. The result of executing the ExecutableCode.
            &quot;outcome&quot;: &quot;A String&quot;, # Required. Outcome of the code execution.
            &quot;output&quot;: &quot;A String&quot;, # Optional. Contains stdout when code execution is successful, stderr or other description otherwise.
          },
          &quot;executableCode&quot;: { # Code generated by the model that is meant to be executed, and the result returned to the model. Generated when using the [CodeExecution] tool, in which the code will be automatically executed, and a corresponding [CodeExecutionResult] will also be generated. # Optional. Code generated by the model that is intended to be executed.
            &quot;code&quot;: &quot;A String&quot;, # Required. The code to be executed.
            &quot;language&quot;: &quot;A String&quot;, # Required. Programming language of the `code`.
          },
          &quot;fileData&quot;: { # URI-based data. A FileData message contains a URI pointing to data of a specific media type. It is used to represent images, audio, and video stored in Google Cloud Storage. # Optional. The URI-based data of the part. This can be used to include files from Google Cloud Storage.
            &quot;displayName&quot;: &quot;A String&quot;, # Optional. The display name of the file. Used to provide a label or filename to distinguish files. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server side tools (`code_execution`, `google_search`, and `url_context`) are enabled.
            &quot;fileUri&quot;: &quot;A String&quot;, # Required. The URI of the file in Google Cloud Storage.
            &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
          },
          &quot;functionCall&quot;: { # A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing the parameters and their values. # Optional. A predicted function call returned from the model. This contains the name of the function to call and the arguments to pass to the function.
            &quot;args&quot;: { # Optional. The function parameters and values in JSON object format. See [FunctionDeclaration.parameters] for parameter details.
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
            },
            &quot;id&quot;: &quot;A String&quot;, # Optional. The unique id of the function call. If populated, the client to execute the `function_call` and return the response with the matching `id`.
            &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the function to call. Matches [FunctionDeclaration.name].
          },
          &quot;functionResponse&quot;: { # The result output from a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function is used as context to the model. This should contain the result of a [FunctionCall] made based on model prediction. # Optional. The result of a function call. This is used to provide the model with the result of a function call that it predicted.
            &quot;id&quot;: &quot;A String&quot;, # Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Matches [FunctionDeclaration.name] and [FunctionCall.name].
            &quot;parts&quot;: [ # Optional. Ordered `Parts` that constitute a function response. Parts may have different IANA MIME types.
              { # A datatype containing media that is part of a `FunctionResponse` message. A `FunctionResponsePart` consists of data which has an associated datatype. A `FunctionResponsePart` can only contain one of the accepted types in `FunctionResponsePart.data`. A `FunctionResponsePart` must have a fixed IANA MIME type identifying the type and subtype of the media if the `inline_data` field is filled with raw bytes.
                &quot;fileData&quot;: { # URI based data for function response. # URI based data.
                  &quot;displayName&quot;: &quot;A String&quot;, # Optional. Display name of the file data. Used to provide a label or filename to distinguish file datas. This field is only returned in PromptMessage for prompt management. It is currently used in the Gemini GenerateContent calls only when server side tools (code_execution, google_search, and url_context) are enabled.
                  &quot;fileUri&quot;: &quot;A String&quot;, # Required. URI.
                  &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
                },
                &quot;inlineData&quot;: { # Raw media bytes for function response. Text should not be sent as raw bytes, use the &#x27;text&#x27; field. # Inline media bytes.
                  &quot;data&quot;: &quot;A String&quot;, # Required. Raw bytes.
                  &quot;displayName&quot;: &quot;A String&quot;, # Optional. Display name of the blob. Used to provide a label or filename to distinguish blobs. This field is only returned in PromptMessage for prompt management. It is currently used in the Gemini GenerateContent calls only when server side tools (code_execution, google_search, and url_context) are enabled.
                  &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
                },
              },
            ],
            &quot;response&quot;: { # Required. The function response in JSON object format. Use &quot;output&quot; key to specify function output and &quot;error&quot; key to specify error details (if any). If &quot;output&quot; and &quot;error&quot; keys are not specified, then whole &quot;response&quot; is treated as function output.
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
            },
          },
          &quot;inlineData&quot;: { # A content blob. A Blob contains data of a specific media type. It is used to represent images, audio, and video. # Optional. The inline data content of the part. This can be used to include images, audio, or video in a request.
            &quot;data&quot;: &quot;A String&quot;, # Required. The raw bytes of the data.
            &quot;displayName&quot;: &quot;A String&quot;, # Optional. The display name of the blob. Used to provide a label or filename to distinguish blobs. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server-side tools (`code_execution`, `google_search`, and `url_context`) are enabled.
            &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
          },
          &quot;text&quot;: &quot;A String&quot;, # Optional. The text content of the part.
          &quot;thought&quot;: True or False, # Optional. Indicates whether the `part` represents the model&#x27;s thought process or reasoning.
          &quot;thoughtSignature&quot;: &quot;A String&quot;, # Optional. An opaque signature for the thought so it can be reused in subsequent requests.
          &quot;videoMetadata&quot;: { # Provides metadata for a video, including the start and end offsets for clipping and the frame rate. # Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data.
            &quot;endOffset&quot;: &quot;A String&quot;, # Optional. The end offset of the video.
            &quot;fps&quot;: 3.14, # Optional. The frame rate of the video sent to the model. If not specified, the default value is 1.0. The valid range is (0.0, 24.0].
            &quot;startOffset&quot;: &quot;A String&quot;, # Optional. The start offset of the video.
          },
        },
      ],
      &quot;role&quot;: &quot;A String&quot;, # Optional. The producer of the content. Must be either &#x27;user&#x27; or &#x27;model&#x27;. If not set, the service will default to &#x27;user&#x27;.
    },
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ExtensionExecutionService.QueryExtension.
  &quot;failureMessage&quot;: &quot;A String&quot;, # Failure message if any.
  &quot;steps&quot;: [ # Steps of extension or LLM interaction, can contain function call, function response, or text response. The last step contains the final response to the query.
    { # The structured data content of a message. A Content message contains a `role` field, which indicates the producer of the content, and a `parts` field, which contains the multi-part data of the message.
      &quot;parts&quot;: [ # Required. A list of Part objects that make up a single message. Parts of a message can have different MIME types. A Content message must have at least one Part.
        { # A datatype containing media that is part of a multi-part Content message. A `Part` consists of data which has an associated datatype. A `Part` can only contain one of the accepted types in `Part.data`. For media types that are not text, `Part` must have a fixed IANA MIME type identifying the type and subtype of the media if `inline_data` or `file_data` field is filled with raw bytes.
          &quot;codeExecutionResult&quot;: { # Result of executing the [ExecutableCode]. Only generated when using the [CodeExecution] tool, and always follows a `part` containing the [ExecutableCode]. # Optional. The result of executing the ExecutableCode.
            &quot;outcome&quot;: &quot;A String&quot;, # Required. Outcome of the code execution.
            &quot;output&quot;: &quot;A String&quot;, # Optional. Contains stdout when code execution is successful, stderr or other description otherwise.
          },
          &quot;executableCode&quot;: { # Code generated by the model that is meant to be executed, and the result returned to the model. Generated when using the [CodeExecution] tool, in which the code will be automatically executed, and a corresponding [CodeExecutionResult] will also be generated. # Optional. Code generated by the model that is intended to be executed.
            &quot;code&quot;: &quot;A String&quot;, # Required. The code to be executed.
            &quot;language&quot;: &quot;A String&quot;, # Required. Programming language of the `code`.
          },
          &quot;fileData&quot;: { # URI-based data. A FileData message contains a URI pointing to data of a specific media type. It is used to represent images, audio, and video stored in Google Cloud Storage. # Optional. The URI-based data of the part. This can be used to include files from Google Cloud Storage.
            &quot;displayName&quot;: &quot;A String&quot;, # Optional. The display name of the file. Used to provide a label or filename to distinguish files. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server side tools (`code_execution`, `google_search`, and `url_context`) are enabled.
            &quot;fileUri&quot;: &quot;A String&quot;, # Required. The URI of the file in Google Cloud Storage.
            &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
          },
          &quot;functionCall&quot;: { # A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing the parameters and their values. # Optional. A predicted function call returned from the model. This contains the name of the function to call and the arguments to pass to the function.
            &quot;args&quot;: { # Optional. The function parameters and values in JSON object format. See [FunctionDeclaration.parameters] for parameter details.
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
            },
            &quot;id&quot;: &quot;A String&quot;, # Optional. The unique id of the function call. If populated, the client to execute the `function_call` and return the response with the matching `id`.
            &quot;name&quot;: &quot;A String&quot;, # Optional. The name of the function to call. Matches [FunctionDeclaration.name].
          },
          &quot;functionResponse&quot;: { # The result output from a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function is used as context to the model. This should contain the result of a [FunctionCall] made based on model prediction. # Optional. The result of a function call. This is used to provide the model with the result of a function call that it predicted.
            &quot;id&quot;: &quot;A String&quot;, # Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`.
            &quot;name&quot;: &quot;A String&quot;, # Required. The name of the function to call. Matches [FunctionDeclaration.name] and [FunctionCall.name].
            &quot;parts&quot;: [ # Optional. Ordered `Parts` that constitute a function response. Parts may have different IANA MIME types.
              { # A datatype containing media that is part of a `FunctionResponse` message. A `FunctionResponsePart` consists of data which has an associated datatype. A `FunctionResponsePart` can only contain one of the accepted types in `FunctionResponsePart.data`. A `FunctionResponsePart` must have a fixed IANA MIME type identifying the type and subtype of the media if the `inline_data` field is filled with raw bytes.
                &quot;fileData&quot;: { # URI based data for function response. # URI based data.
                  &quot;displayName&quot;: &quot;A String&quot;, # Optional. Display name of the file data. Used to provide a label or filename to distinguish file datas. This field is only returned in PromptMessage for prompt management. It is currently used in the Gemini GenerateContent calls only when server side tools (code_execution, google_search, and url_context) are enabled.
                  &quot;fileUri&quot;: &quot;A String&quot;, # Required. URI.
                  &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
                },
                &quot;inlineData&quot;: { # Raw media bytes for function response. Text should not be sent as raw bytes, use the &#x27;text&#x27; field. # Inline media bytes.
                  &quot;data&quot;: &quot;A String&quot;, # Required. Raw bytes.
                  &quot;displayName&quot;: &quot;A String&quot;, # Optional. Display name of the blob. Used to provide a label or filename to distinguish blobs. This field is only returned in PromptMessage for prompt management. It is currently used in the Gemini GenerateContent calls only when server side tools (code_execution, google_search, and url_context) are enabled.
                  &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
                },
              },
            ],
            &quot;response&quot;: { # Required. The function response in JSON object format. Use &quot;output&quot; key to specify function output and &quot;error&quot; key to specify error details (if any). If &quot;output&quot; and &quot;error&quot; keys are not specified, then whole &quot;response&quot; is treated as function output.
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
            },
          },
          &quot;inlineData&quot;: { # A content blob. A Blob contains data of a specific media type. It is used to represent images, audio, and video. # Optional. The inline data content of the part. This can be used to include images, audio, or video in a request.
            &quot;data&quot;: &quot;A String&quot;, # Required. The raw bytes of the data.
            &quot;displayName&quot;: &quot;A String&quot;, # Optional. The display name of the blob. Used to provide a label or filename to distinguish blobs. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server-side tools (`code_execution`, `google_search`, and `url_context`) are enabled.
            &quot;mimeType&quot;: &quot;A String&quot;, # Required. The IANA standard MIME type of the source data.
          },
          &quot;text&quot;: &quot;A String&quot;, # Optional. The text content of the part.
          &quot;thought&quot;: True or False, # Optional. Indicates whether the `part` represents the model&#x27;s thought process or reasoning.
          &quot;thoughtSignature&quot;: &quot;A String&quot;, # Optional. An opaque signature for the thought so it can be reused in subsequent requests.
          &quot;videoMetadata&quot;: { # Provides metadata for a video, including the start and end offsets for clipping and the frame rate. # Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data.
            &quot;endOffset&quot;: &quot;A String&quot;, # Optional. The end offset of the video.
            &quot;fps&quot;: 3.14, # Optional. The frame rate of the video sent to the model. If not specified, the default value is 1.0. The valid range is (0.0, 24.0].
            &quot;startOffset&quot;: &quot;A String&quot;, # Optional. The start offset of the video.
          },
        },
      ],
      &quot;role&quot;: &quot;A String&quot;, # Optional. The producer of the content. Must be either &#x27;user&#x27; or &#x27;model&#x27;. If not set, the service will default to &#x27;user&#x27;.
    },
  ],
}</pre>
</div>

</body></html>